#ifndef HEAP1_H
#define HEAP1_H

struct HeapStruct;
typedef int ElementType;
typedef struct HeapStruct *PriorityQueue;
#define MinPQSize 10
#define MinData (1 << 31)

PriorityQueue Initialize(int MaxElements);
void Destory(PriorityQueue H);
void MakeEmpty(PriorityQueue H);
void Insert(ElementType x, PriorityQueue H);
int IsEmpty(PriorityQueue H);
int IsFull(PriorityQueue H);
ElementType DeleteMin(PriorityQueue H);
ElementType FindMin(PriorityQueue H);
struct HeapStruct
{
    int Capacity;
    int Size;
    ElementType *Elements;
};
#endif